# 单元测试
# 前言
测试是一个项目周期里必不可少的环节,开发者在开发过程中也是无时无刻进行“人工测试”,如果每次修改一点代码,都要牵一发动全身都要手动测试关联接口,这样子是禁锢了生产力。为了解放大部分测试生产力,相关的测试框架应运而生,比较出名的有mocha,karma,jasmine等。虽然框架繁多,但是使用起来都是大同小异。
# 准备工作
# 安装测试相关框架
npm install --save-dev mocha chai supertest
@前端进阶之旅: 代码已经复制到剪贴板
- mocha 模块是测试框架
- chai 模块是用来进行测试结果断言库,比如一个判断 1 + 1 是否等于 2
- supertest 模块是http请求测试库,用来请求API接口
# 测试例子
demo地址
https://github.com/poetries/daily-code-practice/tree/master/node/koa/koa2-demo/test-unit/
# 例子目录
.
├── index.js # api文件
├── package.json
└── test # 测试目录
└── index.test.js # 测试用例
@前端进阶之旅: 代码已经复制到剪贴板
# 所需测试demo
const Koa = require('koa')
const app = new Koa()
const server = async ( ctx, next ) => {
let result = {
success: true,
data: null
}
if ( ctx.method === 'GET' ) {
if ( ctx.url === '/getString.json' ) {
result.data = 'this is string data'
} else if ( ctx.url === '/getNumber.json' ) {
result.data = 123456
} else {
result.success = false
}
ctx.body = result
next && next()
} else if ( ctx.method === 